//designpatterns.decorator.ComponentDecorator.java
package org.patterns.structural.decorator;


/**
 * ComponentDecorator类是装饰器模式中的装饰类，它继承自Component（抽象构件），
 * 用于给其他组件对象动态地添加职责或功能，而不改变原有对象的结构和行为。
 */
public class ComponentDecorator extends Component {
    // 维持对抽象构件类型对象的引用，使得ComponentDecorator可以接管并增强该对象的行为。
	private Component component;

	/**
	 * 构造方法，注入抽象构件类型的对象。
	 * 这允许ComponentDecorator在运行时包装一个Component对象，从而可以在其基础上添加额外的功能。
	 *
	 * @param component 要装饰的组件对象，它是一个Component类型的对象。
	 */
	public ComponentDecorator(Component component) {
		this.component = component;
	}

	/**
	 * 重写display方法，用于调用被装饰对象的display方法。
	 * 该方法确保了原有行为的执行，并在其前后提供了扩展点，以便添加更多的行为。
	 */
	public void display() {
		component.display();
	}
}
